home *** CD-ROM | disk | FTP | other *** search
AMOS Source Code | 2001-09-09 | 13.0 KB | 571 lines |
- Hide
- Dim PA(15,1),SI(359),CO(359),SP(7,5)
- Global PA(),SI(),CO(),SP()
- Degree
- A#=0
- For A=0 To 359
- W=Sin(A#)*256
- SI(A)=W : CO((A+90) mod 360)=W
- A#=A#+1.0
- Next
- 'Bank Delta Decode 3
- Extension_8_108E 3
- FIRST
- SECOND
- THIRD
- FOURTH
- LAST
- Extension_8_10A8
- Procedure FIRST
- Bank Swap 5,1
- Auto View Off
- Erase 2
- Unpack 8 To 1 : Screen Hide
- For A=0 To 58
- Get Icon A+1, Extension_8_092E(A mod 20,4), Extension_8_092E(A/20,4) To Extension_8_092E(A mod 20,4)+16, Extension_8_092E(A/20,4)+16
- Next
- Unpack 9 To 1 : Screen Hide
- Screen Open 0,960,200,8,0 : Screen Hide
- Curs Off : Flash Off : Paper 0 : Pen 1 : Cls 6
- Get Palette 1
- Screen Display 0,128,40,320,200
- Screen Copy 1,0,0,240,144 To 0,0,56
- For A=0 To 239
- Screen Copy 0,A,56,A+1,200 To 0,479-A,56
- Next
- Screen Copy 0,0,56,480,200 To 0,480,56
- Screen Close 1
- Screen Open 1,336,200,8,0 : Screen Hide
- Curs Off : Flash Off : Paper 0 : Pen 1 : Cls 0
- Screen Display 1,128,40,320,200
- Screen Offset 1,8,0
- Get Icon Palette
- C1=Colour(1) : C2=Colour(2) : C3=Colour(3)
- Get Palette 0
- Colour 9,C1 : Colour 10,C2 : Colour 11,C3
- For A=12 To 15 : Colour A,$FFF : Next
- Screen 0 : For A=0 To 31 : Colour A,0 : Next
- Screen Show 0 : Screen Show 1
- Wait Vbl : View
- Dual Playfield 0,1
- Dual Priority 1,0
- View
- Set Rainbow 0,6,202,"","",""
- C0=8 : C1=16 : C2=16
- For A=0 To 201
- If(A and 3)=0 Then C0=Max(C0-1,0)
- If(A and 7)=0 Then C1=Max(C1-1,0)
- If(A and 15)=0 Then C2=Max(C2-1,0)
- Rain(0,A)= Extension_8_0A0E(C0,C1,C2)
- If A>2
- If Rain(0,A-1)<>Rain(0,A)
- Rain(0,A-2)=Rain(0,A)
- End If
- End If
- Next
- Rainbow 0,0,39,202
- Rem |--------------------|
- T$=" WILLKOMMEN ZUR "
- T$=T$+" POSTDISK APRIL 94 "
- T$=T$+" "
- T$=T$+"EXKLUSIV FUER JAGUAR"
- T$=T$+" "
- T$=T$+" DRUECK NE TASTE "
- T$=T$+" WENNS WEITER GEHEN "
- T$=T$+" KANN... "
- Fade 3 To 1 : Screen 1
- XL=1 : TIM=0 : EX=0
- OXT=0 : OYT= Extension_8_092E(191,2)
- XT= Extension_8_092E(8,2) : YT= Extension_8_092E(24,2) : PT=1 : WRIT=1
- Extension_8_0A7E 10,40
- Extension_8_0A94
- Extension_8_0B78 -4,10
- Extension_8_0BAE
- Extension_8_0BCC 2,2
- Repeat
- View : Wait Vbl
- If WRIT Then Gosub WRITTEXT
- If Inkey$<>"" or Mouse Key Then EX=1
- If EX and TIM=0 Then Screen 0 : Fade 3 : Screen 1
- If EX Then Inc TIM
- Screen Offset 0,XL,0
- Add XL,4,1 To 479
- Until TIM=48 and EX=1
- Rainbow Del : View
- Screen Close 0
- Screen Close 1
- Erase 2
- Erase 10
- Auto View On
- Bank Swap 5,1
- Pop Proc
- WRITTEXT:
- Extension_8_0AB8 Extension_8_093A(OXT,2)+8, Extension_8_093A(OYT,2)+8
- Extension_8_0AE4
- DX=XT-OXT
- If Abs(DX)>8 Then Add OXT, Extension_8_093A(DX,3) Else Add OXT,DX
- DY=YT-OYT
- If Abs(DY)>8 Then Add OYT, Extension_8_093A(DY,3) Else Add OYT,DY
- If OXT=XT and OYT=YT
- If PT=Len(T$)
- Extension_8_0B14
- WRIT=0
- Else
- A=Asc(Mid$(T$,PT,1))
- Paste Icon Extension_8_093A(XT,2), Extension_8_093A(YT,2),A-31
- Do
- Inc PT
- Exit If PT=Len(T$)
- Add XT,64
- If XT= Extension_8_092E(328,2)
- XT= Extension_8_092E(8,2) : Add YT,64
- End If
- A=Asc(Mid$(T$,PT,1))
- Exit If A<>32
- Loop
- If PT=Len(T$)
- XT=0 : YT= Extension_8_092E(191,2)
- End If
- End If
- End If
- Return
- End Proc
- Procedure SECOND
- Bank Swap 5,1
- Erase 1
- Screen Open 0,320,64,2,0 : Screen Hide
- Curs Off : Flash Off : Paper 0 : Pen 1
- Ink 1 : B=1
- For A=16 To 6 Step -2
- Cls 0
- Extension_8_05E6 A-1,A-1,A-1
- Get Bob B,0,0 To A*2,A*2
- Hot Spot B,A,A
- Inc B
- Next
- Screen Open 0,320,256,64,0 : Screen Hide
- Curs Off : Flash Off : Paper 0 : Pen 1 : Cls 0
- For A=0 To 31 : Colour A,0 : Next
- Extension_8_0F6C 5
- Extension_8_0F56 0
- Screen Show
- Rem |--------------------|
- T$="BLABLALBALBLLBLSLFLE"
- T$=T$+"BVDFVDDVFDVFDBFBDFDF"
- T$=T$+"DFDFDFDFDSFDSFDFDFFD"
- T$=T$+"PAUSEhHEHE! "
- T$=T$+"SOGAR MIT BILD! "
- T$=T$+" DRUECK NE TASTE! k "
- XT=-1 : YT=0 : PT=0 : YS=16 : SHOPIC=0 : PAU=0 : WAI=0 : CLR=0
- RAX=100 : RO=0 : RAY=50 : CY=0
- RSX=Rnd(5)+1 : RSY=Rnd(5)+1
- Fade 2,$77F,$78F,$79F,$7AF,$7BF,$7CF,$7DF,$7EF,$7FF,$8FF,$9FF,$AFF,$BFF,$CFF,$DFF,$EFF,$FFF,$FEF,$FDF,$FCF,$FBF,$FAF,$F9F,$F8F,$F7F,$E7F,$D7F,$C7F,$B7F,$A7F,$97F,$87F
- Repeat
- Wait Vbl
- If CLR Then Gosub CLRSCR
- If Colour(16)=$FFF Then Gosub WRITTEXT
- If SHOPIC and Colour(16)=0
- Gosub SHOPIC
- SHOPIC=0
- Fade 2,$77F,$78F,$79F,$7AF,$7BF,$7CF,$7DF,$7EF,$7FF,$8FF,$9FF,$AFF,$BFF,$CFF,$DFF,$EFF,$FFF,$FEF,$FDF,$FCF,$FBF,$FAF,$F9F,$F8F,$F7F,$E7F,$D7F,$C7F,$B7F,$A7F,$97F,$87F
- End If
- Gosub SHADEBOBS
- Until Colour(16)=0 and PT=Len(T$)
- Screen Close 0
- Erase 1
- Bank Swap 5,1
- Pop Proc
- CLRSCR:
- If CY>255 Then CY=0 : CLR=0
- PAU=1
- For A=0 To 3
- If CY and 1
- AD=Logbase(5)+CY*40
- Else
- AD=Logbase(5)+(254-CY)*40
- End If
- Loke AD,0 : Loke AD+4,0 : Loke AD+8,0 : Loke AD+12,0
- Loke AD+16,0 : Loke AD+20,0 : Loke AD+24,0 : Loke AD+28,0
- Loke AD+32,0 : Loke AD+36,0
- Inc CY
- Next
- Return
- WRITTEXT:
- If WAI and(Inkey$<>"" or Mouse Key) Then WAI=0
- If WAI Then Return
- If PAU Then Dec PAU : Return
- If PT=Len(T$) Then Return
- If YS<16
- For A=0 To 2
- Do
- Exit If YS>15,2
- D=Deek(ZP)
- If D
- Doke Logbase(5)+ Extension_8_092E(XT+YT*320+YS*20,1),D
- Add ZP,2 : Inc YS
- Exit
- End If
- Add ZP,2 : Inc YS
- Loop
- Next
- Else
- Inc PT
- If PT=Len(T$) : Fade 2 : Return : End If
- A=Asc(Mid$(T$,PT,1))
- If A=112 or A=104 or A=107 or A=99
- If A=112
- Fade 2 : SHOPIC=1
- End If
- If A=104
- PAU=100
- End If
- If A=107
- WAI=1
- End If
- If A=99
- XT=-1 : YT=0
- CLR=1 : PAU=1
- End If
- Else
- Inc XT : If XT=20 : XT=0 : Inc YT : End If
- ZP=Start(7)+ Extension_8_092E(A-32,5)
- YS=0
- End If
- End If
- Return
- SHADEBOBS:
- PA(0,0)= Extension_8_093A(SI(RO)*RAX,8)+160
- PA(0,1)= Extension_8_093A(CO(RO)*RAY,8)+128
- Add RAX,RSX
- If RAX<-160 Then RSX=Rnd(5)+1
- If RAX>160 Then RSX=-Rnd(5)+1
- Add RAY,RSY
- If RAY<-128 Then RSY=Rnd(5)+1
- If RAY>128 Then RSY=-Rnd(5)+1
- Add RO,4,0 To 359
- For A=15 To 0 Step -1
- If PA(A,0)<>0 and PA(A,1)<>0 and((A and $7)=0)
- Extension_8_0F84 0,PA(A,0),PA(A,1), Extension_8_093A(A,2)+1
- End If
- If A
- PA(A,0)=PA(A-1,0)
- PA(A,1)=PA(A-1,1)
- End If
- Next
- Return
- SHOPIC:
- Screen Hide
- Bank Swap 5,1
- Unpack 6 To 1 : Screen Hide
- Screen 0
- For A=0 To 15 : Colour A,0 : Next
- Get Palette 1
- For A=0 To 3
- Colour 17+ Extension_8_092E(A,2),$8F6
- Colour 18+ Extension_8_092E(A,2),$4B2
- Colour 19+ Extension_8_092E(A,2),$270
- Next
- Screen 1
- For A=0 To 15 : Colour A,0 : Next
- Wait Vbl : Screen Show
- Fade 2 To 0
- X=Free
- A$="; B: L R0=RA*256; L R1=480; L R3=0; "
- A$=A$+"A: P; L X=R0/16; L Y=R1/16; L R1=R1+R3; L R3=R3+1; "
- A$=A$+"I R1>4444 J C; J A; C: I R1>4544 J B; I R3<20 J A; L R3=0-R3/2; "
- A$=A$+"L R1=4444; J A; "
- For A=0 To 7
- X=Free
- If A=0 or A=3 Then I=1
- If A=1 Then I=2
- If A=2 Then I=3
- If A=4 Then I=4
- If A>4 Then I=5
- Sprite A,0,0,I
- Channel A To Sprite A
- Amal A,String$("P",A+1)+A$
- Next
- Amal On
- A=8
- Repeat
- Multi Wait
- Amreg(0)=8+A : Amreg(3)=Rnd(5)
- Add A,1,0 To 19
- Until Inkey$<>"" or Mouse Key
- For A=0 To 15
- For C=0 To 31
- Colour C, Extension_8_0EFC(Colour(C),-1,0 To $FFF)
- Next
- Wait 2
- Next
- For A=0 To 15
- For C=0 To 31
- Colour C, Extension_8_0EFC(Colour(C),-$10,0 To $FFF)
- Next
- Wait 2
- Next
- For A=0 To 15
- For C=0 To 31
- Colour C, Extension_8_0EFC(Colour(C),-$100,0 To $FFF)
- Next
- Wait 2
- Next
- Amal Off : Sprite Off
- Screen Close 1
- Screen 0
- For A=0 To 15 : Colour A,0 : Next
- Wait Vbl
- Bank Swap 5,1
- Screen Show
- Return
- End Proc
- Procedure THIRD
- Bank Swap 5,1
- Erase 1
- Unpack 8 To 1 : Screen Hide
- For A=0 To 58
- Get Sprite A+1, Extension_8_092E(A mod 20,4), Extension_8_092E(A/20,4) To Extension_8_092E(A mod 20,4)+16, Extension_8_092E(A/20,4)+16
- Next
- Screen Open 0,320,256,16,0
- Curs Off : Flash Off : Paper 0 : Pen 1 : Cls 0
- Double Buffer
- Autoback 0
- Get Sprite Palette
- For A=0 To 3
- If A>0
- Colour 1+ Extension_8_092E(A,2),Colour(1)
- Colour 2+ Extension_8_092E(A,2),Colour(2)
- Colour 3+ Extension_8_092E(A,2),Colour(3)
- Else
- Colour 4,$555
- Colour 8,$AAA
- Colour 12,$EEE
- End If
- Colour 17+ Extension_8_092E(A,2),Colour(1)
- Colour 18+ Extension_8_092E(A,2),Colour(2)
- Colour 19+ Extension_8_092E(A,2),Colour(3)
- Next
- Extension_8_0A7E 10,40
- Extension_8_0A94
- Extension_8_0AB8 160,128
- Extension_8_0B78 0,0
- Extension_8_0B92
- Extension_8_0BCC 2,3
- Extension_8_0AD0
- X=0 : Y=-16 : NS=0 : BP=1
- For A=0 To 4
- SP(A,4)=-3
- Next
- NEXSPR=0 : ACT=4
- T$="$LANGSAM ABER SICHER$GEHT AUCH DIESE$POSTDISK$ZUENDE...$$"
- T$=T$+"SCHREIB MIR AUCH MAL$WAS UEBER DICH!$$NUN GUT...$WIR SEHEN UNS WIEDER$"
- T$=T$+"BEI DER NAECHSTEN!$$$BIS BALD...$ $CU$ "
- Repeat
- Screen Swap
- Wait Vbl
- Gosub PULET
- Extension_8_0B78 Rnd(4)-2,Rnd(4)-2
- Extension_8_0AB8 158+Rnd(4),126+Rnd(4)
- Extension_8_0AFC
- Until ACT=0
- Fade 2
- Wait 32
- Sprite Off
- Screen Close 0
- Erase 1
- Bank Swap 5,1
- Pop Proc
- PULET:
- PS=0
- For A=0 To 4
- If SP(A,4)<-1 Then PS=1
- If SP(A,4)=0 Then Paste Bob SP(A,0),SP(A,1),SP(A,5)
- If SP(A,4)=-1 Then Paste Bob SP(A,0),SP(A,1),SP(A,5) : Dec ACT
- Next
- Inc TIMOUT
- If PS and TIMOUT>12 Then Gosub SETSPR
- For A=0 To 4
- If SP(A,4)=>0
- XS=SP(A,0)+(SP(A,2)*SP(A,4))/64
- YS=SP(A,1)+(SP(A,3)*SP(A,4))/64
- Sprite A,X Hard(XS),Y Hard(YS),SP(A,5)
- Else
- Sprite Off A
- End If
- Dec SP(A,4)
- Next
- Return
- SETSPR:
- If BP=Len(T$) Then Return
- A=Asc(Mid$(T$,BP,1))
- If A=36
- Inc BP
- P=Instr(Mid$(T$,BP),"$")-1
- Add Y,16
- X=160- Extension_8_092E(P,3)
- Goto SETSPR
- End If
- SP(NS,0)=X : SP(NS,1)=Y
- SP(NS,2)=(Rnd(336)-16)-X
- SP(NS,3)=256-Y : SP(NS,4)=64
- SP(NS,5)=A-31
- Inc BP
- ACT=5 : TIMOUT=0
- Add X,16
- Add NS,1,0 To 4
- Return
- End Proc
- Procedure FOURTH
- Unpack 11 To 0 : Screen Hide
- For A=0 To 15 : Colour A,0 : Next
- Wait Vbl
- Screen Show
- Fade 1,0,$111,$222,$333,$444,$555,$666,$777,$888,$999,$AAA,$BBB,$CCC,$DDD,$EEE,$FFF
- Wait 200
- Fade 1
- Wait 16
- Screen Close 0
- End Proc
- Procedure LAST
- Screen Open 0,320,256,2,0
- Curs Off : Flash Off : Paper 0 : Pen 1 : Cls
- Double Buffer
- Autoback 0
- WX=0 : WY=180 : WZ=0
- MPX=160 : MPY=128 : MPZ=600
- Restore DATS
- Read ANZP
- Dim PT(ANZP,2),CM(ANZP,2,1)
- For A=1 To ANZP
- Read PT(A,0),PT(A,1)
- Add PT(A,0),22
- Next
- Read ANZL
- Dim LC(ANZL,1)
- For A=1 To ANZL
- Read LC(A,0),LC(A,1)
- Next
- S=0
- MIX2=0 : MIY2=0 : MUX2=1 : MUY2=1
- For TIM=1 To 90
- Gosub COMPCOORDS
- Ink 1
- MIX1=320 : MIY1=256 : MUX1=0 : MUY1=0
- For A=1 To ANZL
- X1=CM(LC(A,0),0,0) : Y1=CM(LC(A,0),1,0)
- X2=CM(LC(A,1),0,0) : Y2=CM(LC(A,1),1,0)
- MIX1=Min(Min(MIX1,X1),X2)
- MIY1=Min(Min(MIY1,Y1),Y2)
- MUX1=Max(Max(MUX1,X1),X2)
- MUY1=Max(Max(MUY1,Y1),Y2)
- Draw X1,Y1 To X2,Y2
- Next
- Screen Swap
- Wait Vbl
- S=1-S
- Gosub COMPCOORDS
- Ink 0 : Bar MIX2-1,MIY2-1 To MUX2+1,MUY2+1
- Ink 1
- MIX2=320 : MIY2=256 : MUX2=0 : MUY2=0
- For A=1 To ANZL
- X1=CM(LC(A,0),0,1) : Y1=CM(LC(A,0),1,1)
- X2=CM(LC(A,1),0,1) : Y2=CM(LC(A,1),1,1)
- MIX2=Min(Min(MIX2,X1),X2)
- MIY2=Min(Min(MIY2,Y1),Y2)
- MUX2=Max(Max(MUX2,X1),X2)
- MUY2=Max(Max(MUY2,Y1),Y2)
- Draw X1,Y1 To X2,Y2
- Next
- Screen Swap
- Wait Vbl
- S=1-S
- Ink 0 : Bar MIX1-1,MIY1-1 To MUX1+1,MUY1+1
- Next
- Screen Copy Physic(0) To Logic(0)
- P= Extension_8_0CF2(0,0,MIX2,MIY2 To MUX2+1,MUY2+1)
- Extension_8_0D24 10,P+1
- Extension_8_0D2E 0,0,MIX2,MIY2 To MUX2+1,MUY2+1,10,0
- Extension_8_0D4E 12,P+1
- Extension_8_0D66
- Extension_8_0DB8 0,1
- Extension_8_0D8A 0,5
- Extension_8_0E62 -1
- Extension_8_0F2A -1
- Extension_8_0DA4
- Repeat
- Screen Swap
- Wait Vbl
- Extension_8_0DEC
- Until Extension_8_0F40 =0
- Screen Close 0
- Erase 10
- Erase 12
- Pop Proc
- COMPCOORDS:
- MPZ=Max(MPZ-10,100)
- Add WX,1,0 To 359
- Add WY,2,0 To 359
- Add WZ,4,0 To 359
- For A=1 To ANZP
- X=(PT(A,0)*CO(WX)+PT(A,1)*SI(WX))/256
- Y=(PT(A,0)*SI(WX)-PT(A,1)*CO(WX))/256
- Z=(X*SI(WY))/256
- CM(A,2,S)=(Y*SI(WZ)-Z*CO(WZ))/256
- CM(A,0,S)=MPX+(X*CO(WY))/(MPZ+CM(A,2,S))
- CM(A,1,S)=MPY+(Y*CO(WZ)+Z*SI(WZ))/(MPZ+CM(A,2,S))
- Next
- Return
- DATS:
- Data 22
- ' E
- Data -50,-10
- Data -50,0
- Data -50,10
- Data -40,-10
- Data -42,0
- Data -40,10
- ' N
- Data -35,-10
- Data -35,10
- Data -25,-10
- Data -25,10
- ' D
- Data -20,-10
- Data -20,10
- Data -15,-10
- Data -10,-5
- Data -10,5
- Data -15,10
- ' E
- Data -5,-10
- Data -5,0
- Data -5,10
- Data 5,-10
- Data 3,0
- Data 5,10
- '
-
- Data 17
- ' E
- Data 1,3
- Data 1,4
- Data 2,5
- Data 3,6
- ' N
- Data 7,8
- Data 7,10
- Data 9,10
- ' D
- Data 11,12
- Data 11,13
- Data 13,14
- Data 14,15
- Data 15,16
- Data 16,12
- ' E
- Data 17,19
- Data 17,20
- Data 18,21
- Data 19,22
-
- End Proc